1. Field of the Invention
The invention relates generally to Serial Attached SCSI (SAS) technology, and in particular relates to SAS expanders.
2. Discussion of Related Art
In SAS domains (i.e., electronic systems implementing a switched SAS fabric) it is common for a SAS initiator to communicate with a large number of SAS or Serial Advanced Technology Attachment (SATA) target devices. The target devices may comprise, for example, SAS/SATA storage devices that provision one or more logical volumes of data. In a SAS domain, the target devices may be coupled for communication with the initiator via one or more SAS expanders. The SAS expanders establish switched temporary communication channels between the initiator and the various target devices.
Each SAS expander includes multiple physical links and associated transceivers. The combination of a physical link and its associated transceiver is referred to in SAS as a PHY. Each PHY can be coupled with a SAS device that is external to the expander. Thus, an operating SAS expander is coupled with multiple external devices via multiple PHYs. For example, the PHYs of a SAS expander may be coupled with other SAS expanders, with target devices, with SAS initiators, etc.
The PHYs of an expander are electrically connected with each other via switching hardware, such as a crossbar switch. Whenever a request is received at the expander, the switching hardware in the expander can be used to link different PHYs of the expander to each other, in order to send the request onward towards its destination. An example of a request processed by an expander is an Open Address Frame (OAF), which is used to establish a point-to-point connection between a SAS initiator and a target device. The set of PHYs in a SAS domain that are used to establish a connection between a SAS initiator and a target device is referred to as a pathway. Further descriptions of SAS devices and interactions are included in the SAS 2.0, revision 16 specifications, issued by the T10 committee on 18 Apr. 2009 and herein incorporated by reference.
Because SAS expanders often establish multiple connections between devices at once, it is not uncommon for requests received at an expander to be directed towards PHYs that are already actively servicing a point-to-point connection. For example, if an existing connection uses a pathway that couples a first PHY with a second PHY at the expander, then a third PHY cannot establish a different connection with either the first PHY or second PHY at this time. In these circumstances where an incoming host request (i.e., an OAF) is directed to a PHY that is busy with a previously established connection, the host request is ignored/dropped by the expander and the expander may reply to the request with an OPEN REJECT (RETRY).
The device that originated the request (e.g., a SAS initiator) waits for a response to its request, and then determines that the request has been dropped. Therefore, the requesting device must send the request again in the hope that an available connection is now open. Re-sending requests increases the workload at the requesting device, but does not improve the speed at which the requesting device processes host Input and/or Output (I/O). Therefore, the extra processing does not enhance the performance of the SAS domain.
Thus it is an ongoing challenge to enhance the performance of SAS domains in processing requests sent between devices of the domain.